// 认证工具函数
export const authUtils = {
  // 清除所有认证信息
  clearAuth() {
    localStorage.removeItem('token')
    localStorage.removeItem('adminToken')
    localStorage.removeItem('user')
    localStorage.removeItem('adminUser')
    localStorage.removeItem('userType')
    console.log('🔓 已清除所有认证信息')
  },

  // 检查是否已登录
  isAuthenticated() {
    return !!(localStorage.getItem('token') || localStorage.getItem('adminToken'))
  },

  // 检查是否是管理员
  isAdmin() {
    return localStorage.getItem('userType') === 'admin'
  },

  // 获取当前用户信息
  getCurrentUser() {
    const user = localStorage.getItem('user')
    const adminUser = localStorage.getItem('adminUser')
    return user ? JSON.parse(user) : (adminUser ? JSON.parse(adminUser) : null)
  },

  // 获取当前用户名
  getCurrentUsername() {
    const user = this.getCurrentUser()
    return user?.name || '用户'
  },

  // 退出登录
  logout(router) {
    this.clearAuth()
    
    // 如果传入了router，使用router跳转
    if (router) {
      router.replace('/login')
    } else {
      // 否则使用window.location跳转
      window.location.href = '/login'
    }
  },

  // 设置用户认证信息
  setUserAuth(token, user) {
    localStorage.setItem('token', token)
    localStorage.setItem('user', JSON.stringify(user))
    localStorage.setItem('userType', 'user')
  },

  // 设置管理员认证信息
  setAdminAuth(token, adminUser) {
    localStorage.setItem('adminToken', token)
    localStorage.setItem('adminUser', JSON.stringify(adminUser))
    localStorage.setItem('userType', 'admin')
  }
}

// 导出默认对象
export default authUtils
